همیشه یکی از مشکلات رایج برنامه نویسان اجرا صحیح فایل های اسمبلی بوده است. با بهترین روش اجرا فایل های اسمبلی همراه کینگ وبز باشید.
نحوه اجرا فایل اسمبلی در لینوکس (Assembly in Linux)
در این آموزش ما قصد داریم تا نحوه اجرا فایل های اسمبلی که مطابق با قوانین Nasm نوشته شده اند را شرح دهیم.
کامپایلر Nasm چیست؟
NASM یا مخفف (Netwide Assembler) یک ابزار نرمافزاری است که برای تولید و ترجمه کد های اسمبلی استفاده میشود.
NASM یک اسمبلر قابل حمل است که بر روی سیستم عامل های مختلف اجرا میشود و به برنامهنویسان امکان میدهد که کدهای ماشینی به زبان اسمبلی برای بسیاری از ساختارهای سیستمهای کامپیوتری را ایجاد و ترجمه کنند.
NASM مخصوصاً برای پروژههایی که در سطح پایینتر سیستمعامل اجرا میشوند مفید است، از جمله برنامههای سیستم، درایورها و هستههای سیستم عامل.
زبان اسمبلی که با استفاده از NASM تولید میشود، با نحوه عملکرد سیستمهای کامپیوتری و ساختارهای داخلی آنها به طور مستقیم ارتباط برقرار میکند.
NASM یکی از اسمبلرهای محبوب و رایگان برای پلتفرمهای مختلف مانند ویندوز، لینوکس و مکینتاش است. این ابزار قدرتمند و قابل تنظیم با سینتکس سادهای برخوردار است که برنامهنویسان را قادر میسازد کدهای بهینه و کارآمد را تولید کنند.
قبل از اجرا فایل های اسمبلی بیشتر درباره آن بدانید
زبان اسمبلی (Assembly Language) یک زبان برنامهنویسی مناسب سطح پایین است که برای برنامهنویسی مستقیم با ساختارهای سختافزاری کامپیوترها استفاده میشود.
در واقع، زبان اسمبلی ترجمهپذیر به زبان ماشینی (کد باینری) است و به برنامهنویسان امکان میدهد دستورات سطح پایین و مستقیم برای کنترل سختافزار را بنویسند.
زبان اسمبلی با استفاده از مجموعهای از دستورات مستقیماً قابل فهم برای پردازندهها و ساختارهای سختافزاری توصیف میشود.
هر دستور اسمبلی به نمایندهای از یک دستور ماشینی متناظر میپردازد که توسط پردازنده قابل فهم است. برای نمونه، یک دستور اسمبلی میتواند به صورت زیر باشد:
MOV AX, 5
این دستور از طریق دستور MOV (مخفف Move) مقدار ۵ را به ثابت AX منتقل میکند.
در اینجا AX یک ثابت (رجیستر) در پردازنده است که میتواند برای نگهداری اعداد و دادههای میانی استفاده شود.
زبان اسمبلی توانایی نمایش کامل و دقیق دستورات و ساختارهای سختافزاری را دارد و به برنامهنویس اجازه میدهد به طور مستقیم کنترل و مدیریت حافظه، ثبتهای پردازنده، ورودی و خروجی و سایر عناصر سختافزاری را داشته باشد.
با این حال، زبان اسمبلی نسبت به زبانهای برنامهنویسی سطح بالاتر (مانند C یا Python) پیچیدگی بیشتری دارد و نیاز به دقت بالا در استفاده از آن دارد.
استفاده از زبان اسمبلی معمولاً برای برنامهنویسی بخشهای بسیار حساس به زمان و سرعت استفاده میشود، مانند برنامههای سیستم عامل، رایانههای جاسازی، درایورها و برنامههایی که مستقیماً با سختافزار تعامل دارند.
نحوه نصب nasm برای اجرا فایل های اسمبلی
برای دانلود nasm ابتدا به سایت رسمی (https://www.nasm.us) آن رفته و از قسمت Download نسخه مورد نظر خود را انتخاب کنید.
سپس برای لینوکس از همان پوشه فایل nasm-x.xx.xx.tar.gz را دانلود کنید. برای ویندوز، بر اساس نسخه ویندوز خود وارد Win64 یا Win32 شوید و فایل با فرمت .exe را دانلود کنید.
برای ویندوز کافیست فایل .exe را اجرا کرده و تا نصب کامل نرم افزار منتظر بمانید.
برای لینوکس در پوشه ای که فایل ذخیره شده دستور زیر را اجرا کنید تا فایل از حالت فشرده خارج شو: (بر اساس نسخه دانلودی x.x را جایگزین کنید)
tar -xvf nasm-x.x.tar.gz
سپس به پوشه اکسترکت شده بروید:
cd nasm-x.x
و در آخر با اجرا کد زیر نرم افزار را در لینوکس نصب کنید:
./configure
make
sudo make install
برای اطمینان از نصب نرم افزار Nasm می توانید کامند زیر را در ترمینال اجرا کنید:
nasm -v
نکته: اگر با روش بالا نتوانستید Nasm را در لینوکس نصب کنید کامند زیر را در ترمینال اجرا کنید: (به صورت خودکار نرم افزار دانلود و نصب خواهد شد)
sudo apt install nasm
نحوه اجرا فایل های اسمبلی با Nasm
در آخر برای اجرای فایل های اسمبلی از طریق ترمینال یا CMD به پوشه ای که فایل در آن ذخیره شده است بروید.
کد زیر را در ترمیال اجرا کنید تا یک آبجکت از کد بسازد:
nasm -f elf "fileName.asm"
به جای fileName نام فایل مورد نظر را جایگزین کنید.
پس از آن کد زیر را در ترمینال اجرا کنید تا یک فایل اجرایی از آبجکت ساخته شده بسازد:
ld -m elf_i386 -s -o "fileName" "fileName.o"
در آخر هم فایل ساخته شده را اجرا کنید. در لینوکس با کامند زیر می توانید فایل اجرایی شاخته شده را اجرا کنید:
./fileName
بهترین روش برای اجرا فایل های اسمبلی در لینوکس (Rasm)
ساده ترین و بهترین روش برای اجرا فایل های اسمبلی استفاده از نرم افزار Rasm در لینوکس است. تمام اطلاعات و روش استفاده از نرم افزار را می توانید در صفحه گیت هاب Rasm مشاهده کنید.
منتظر نظرات و پیشنهادات شما هستیم!
ممنون از اینکه تا به اینجا با آموزش اجرا فایل های اسمبلی در لینوکس و ویندوز (Rasm & Nasm) همراه کینگ وبز بودید. اگر مشکل یا پیشنهادی درباره نحوه اجرا فایل اسمبلی دارید می توانید از زیر همین مطلب در قسمت دیدگاه ها، نظرات خود را ثبت کنید.